汇编语言学习笔记04

您所在的位置:网站首页 汇编mov ah 9 汇编语言学习笔记04

汇编语言学习笔记04

2024-07-13 13:29| 来源: 网络整理| 查看: 265

我们之前说学习汇编不能光看书学理论知识,要结合着实验去做,所以网课也很贴心的给附上了实验的课程。这次先学mov和add指令。

首先要说明的是,汇编指令是不区分大小写的。 在这里插入图片描述

这张图可以很好的解释mov和add指令的作用,需要注意的地方一个是最后一行,其结果存入ax寄存器中。还有就是这里不是debug环境,所以数值默认是10进制的。如果想要表达其他进制,需要在后面加上对应的字母。

接下来我们用类似书上例题的形式来分析一些指令,去更快的理解它们。

一、写出汇编指令后的结果 1、mov ax,4E20H 这里是把十六进制的4E20H这个数放到了ax寄存器中,执行指令后的ax中的数据变为4E20H(假设原ax,bx中的数据均为0000H)。

2、add ax,1406H 我们这里的命令是紧接着上一个的,所以在执行这条指令之前,ax寄存器的数值已经是4E20H了。这里相当于ax = ax+1406H,所以执行完毕后ax变为了1406+4E26为6226H。

注:十六进制的加减法其实跟10进制差不多,也是满了就进,不够就借。

考试如果是上机的话,可以直接调用Windows给自带的计算器的,比如win10,在左下角直接搜计算器后,这里有很多选项,选择程序员模式,即可使用16进制直接加减。在这里插入图片描述

3、mov bx,2000H 执行完后ax为6226,bx为2000

4、add ax,bx 执行完后ax为8226,bx为2000

5、mov bx,ax 这里需要注意的是,就像我们上面那张图说的,它类似于高级语言中的赋值语句,所以对原来的是不变的。因此bx是变成了ax存的8226,而ax依然还是6226

6、add ax,bx 这里如果算的话,ax应该是8226+8226=1044C,但是1044C是溢出的,超过了16位的寄存器所能承载的最大的数值,所以现在ax会变成044C,这个是需要注意的地方。

二、写出汇编指令后的结果

这里我们从新开始执行一些指令,ax和bx都先归零

1、mov ax,001AH 2、mov bx,0026H 这两个很简单,现在ax中是001A,bx中是0026

3、add al,bl 注意这里的寄存器变成了al和bl,即ax和bx的低位。 所以这里应该是1A+26=40。ax现在是0040H,bx是0026H

4、add ah,bl 这里是加到了ah上,ax变为了2640。

5、add bh,al ax为2640,bx为4026

6、mov ah,0 这里呢把ah变为了0,所以ax变为了0040

7、mov al,85H 这里注意又把al变成了85h

8、add al,93H 这个是最需要注意的地方,93H加85H后是118,由于我们的命令中写的是al而不是ax,所以这里我们已经变成了计算8位的相加了,并不能进位到ah中去,所以只能舍弃成18H,ax现在是0018H。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3